home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / Asm / Blitter / DrawLine.s < prev    next >
Text File  |  1997-12-16  |  3KB  |  126 lines

  1. ;-------T-------T------------------------T----------------------------------;
  2. ;Name:      Draw Line
  3. ;Author:    Paul Manias
  4. ;Copyright: DreamWorld Productions (c) 1996-1997.  Freely distributable.
  5. ;
  6. ;This demo draws a line which you can control with the mouse.
  7.  
  8.     INCDIR    "GMSDev:Includes/"
  9.     INCLUDE    "dpkernel/dpkernel.i"
  10.  
  11.     SECTION    "Demo",CODE
  12.  
  13. ;===========================================================================;
  14. ;                             INITIALISE DEMO
  15. ;===========================================================================;
  16.  
  17.     STARTDPK
  18.  
  19. Start:    MOVEM.L    A0-A6/D1-D7,-(SP)
  20.     move.l    DPKBase(pc),a6
  21.     lea    ScreenTags(pc),a0
  22.     sub.l    a1,a1
  23.     CALL    Init
  24.     tst.l    d0
  25.     beq.s    .Exit
  26.  
  27.     moveq    #ID_JOYDATA,d0
  28.     CALL    Get
  29.     move.l    d0,JoyData
  30.     beq.s    .Exit
  31.     move.l    d0,a0
  32.     sub.l    a1,a1
  33.     CALL    Init
  34.     tst.l    d0
  35.     beq.s    .Exit
  36.  
  37.     move.l    Screen(pc),a0
  38.     CALL    Display
  39.  
  40.     bsr.s    Main
  41.  
  42. .Exit    move.l    DPKBase(pc),a6
  43.     move.l    JoyData(pc),a0
  44.     CALL    Free
  45.     move.l    Screen(pc),a0
  46.     CALL    Free
  47.     MOVEM.L    (SP)+,A0-A6/D1-D7
  48.     moveq    #ERR_OK,d0
  49.     rts
  50.  
  51. ;===========================================================================;
  52. ;                                MAIN LOOP
  53. ;===========================================================================;
  54.  
  55. Main:
  56. .loop    move.l    BLTBase(pc),a6
  57.     move.l    Screen(pc),a0
  58.     move.l    GS_Bitmap(a0),a0
  59.     CALL    bltClearBitmap
  60.  
  61.     move.l    DPKBase(pc),a6
  62.     move.l    JoyData(pc),a0
  63.     CALL    Query
  64.  
  65.     move.l    JoyData(pc),a0
  66.     move.l    JD_Buttons(a0),d0
  67.     btst    #JB_RMB,d0
  68.     bne.s    .done
  69.     lea    MouseDXY(pc),a1
  70.     btst    #JB_LMB,d0
  71.     beq.s    .no
  72.  
  73.     lea    MouseSXY(pc),a1
  74. .no    move.w    JD_YChange(a0),d0
  75.     add.w    d0,2(a1)
  76.     move.w    JD_XChange(a0),d0
  77.     add.w    d0,(a1)
  78.  
  79. .Draw    move.l    BLTBase(pc),a6
  80.     move.l    Screen(pc),a0
  81.     move.l    GS_Bitmap(a0),a0
  82.     movem.w    MouseSXY(pc),d1/d2/d3/d4    ;d1 = XStart, YStart, XEnd, YEnd.
  83.     moveq    #2,d5    ;d5 = Colour
  84.     CALL    bltDrawLine
  85.  
  86.     move.l    SCRBase(pc),a6
  87.     CALL    scrWaitAVBL
  88.     move.l    Screen(pc),a0
  89.     CALL    scrSwapBuffers
  90.     bra.s    .loop
  91.  
  92. .done    rts
  93.  
  94. ;===========================================================================;
  95. ;                                  DATA
  96. ;===========================================================================;
  97.  
  98. MouseSXY:    dc.w  160,128
  99. MouseDXY:    dc.w  40,40
  100.  
  101. JoyData:    dc.l  0
  102. ScreenTags:    dc.l  TAGS_SCREEN
  103. Screen:        dc.l  0
  104.         dc.l  GSA_Palette,.palette
  105.         dc.l    GSA_BitmapTags,0
  106.         dc.l    BMA_AmtColours,4
  107.         dc.l    TAGEND,0
  108.         dc.l  GSA_Width,640
  109.         dc.l  GSA_Height,256
  110.         dc.l  GSA_Attrib,DBLBUFFER
  111.         dc.l  GSA_ScrMode,HIRES
  112.         dc.l  TAGEND
  113.  
  114. .palette    dc.l  PALETTE,4
  115.         dc.l  $000000,$f0f0f0,$f000f0,$f00000
  116.  
  117. ;===========================================================================;
  118.  
  119. ProgName:    dc.b  "Draw Line",0
  120. ProgAuthor:    dc.b  "Paul Manias",0
  121. ProgDate:    dc.b  "14 December 1997",0
  122. ProgCopyright:    dc.b  "DreamWorld Productions (c) 1996-1997.  Freely distributable.",0
  123. ProgShort:    dc.b  "Simple line demonstration.",0
  124.         even
  125.  
  126.